﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel.DataAnnotations;

namespace ASPMVCUtil.DataAnnotations
{
    /// <summary>
    /// Contienen constantes para ubicar en el resource ValidationStrings los textos para las validaciones de propiedades de modelos
    /// </summary>
    public static class ResourceNames
    {
        /// <summary>
        /// Ubica el mensaje definido para campos requeridos
        /// Se debe utilizar de la siguiente manera:
        /// [Required(ErrorMessageResourceName = ResourceNames.Required, ErrorMessageResourceType = typeof(ValidationStrings))]
        /// debe incluir: using Resources;
        /// </summary>
        public const string Required = "Required";
        /// <summary>
        /// Ubica el mensaje definido para campos etiquetados con StringLength que sólo tienen máximo
        /// Se debe utilizar de la siguiente manera:
        /// [StringLength(16, ErrorMessageResourceName = ResourceNames.StringLengthMM, ErrorMessageResourceType = typeof(ValidationStrings))]
        /// debe incluir: using Resources;
        /// </summary>
        public const string StringLengthM = "StringLengthM";
        /// <summary>
        /// Ubica el mensaje definido para campos etiquetados con StringLength que tienen máximo y mínimo
        /// Se debe utilizar de la siguiente manera:
        /// [StringLength(16, MinimumLength = 3, ErrorMessageResourceName = ResourceNames.StringLengthMM, ErrorMessageResourceType = typeof(ValidationStrings))]
        /// debe incluir: using Resources;
        /// </summary>
        public const string StringLengthMM = "StringLengthMM";
        /// <summary>
        /// Ubica el mensaje definido para campos etiquetados con RegularExpression con la expresión ExpresionesRegulares.Digitos
        /// Se debe utilizar de la siguiente manera:
        /// [RegularExpression(ExpresionesRegulares.Digitos, ErrorMessageResourceName = ResourceNames.Digitos, ErrorMessageResourceType = typeof(ValidationStrings))]
        /// debe incluir: using Resources;
        /// </summary>
        public const string Digitos = "Digitos";
        /// <summary>
        /// Ubica el mensaje definido para campos etiquetados con RegularExpression con la expresión ExpresionesRegulares.Digito
        /// Se debe utilizar de la siguiente manera:
        /// [RegularExpression(ExpresionesRegulares.Digitos, ErrorMessageResourceName = ResourceNames.Digitos, ErrorMessageResourceType = typeof(ValidationStrings))]
        /// debe incluir: using Resources;
        /// </summary>
        public const string Digito = "Digito";
        /// <summary>
        /// Ubica el mensaje definido para campos etiquetados con RegularExpression con la expresión ExpresionesRegulares.Email
        /// Se debe utilizar de la siguiente manera:
        /// [RegularExpression(ExpresionesRegulares.Email, ErrorMessageResourceName = ResourceNames.Digitos, ErrorMessageResourceType = typeof(ValidationStrings))]
        /// debe incluir: using Resources;
        /// </summary>
        public const string Email = "Email";
        /// <summary>
        /// Ubica el mensaje definido para campos etiquetados con RegularExpression con la expresión ExpresionesRegulares.Currency
        /// Se debe utilizar de la siguiente manera:
        /// [RegularExpression(ExpresionesRegulares.Currency, ErrorMessageResourceName = ResourceNames.Currency, ErrorMessageResourceType = typeof(ValidationStrings))]
        /// debe incluir: using Resources;
        /// </summary>
        public const string Currency = "Currency";
        /// <summary>
        /// Ubica el mensaje definido para campos etiquetados con DataType.Date
        /// Se debe utilizar de la siguiente manera:
        /// [DataType(DataType.Date, ErrorMessageResourceName = ResourceNames.Date, ErrorMessageResourceType = typeof(ValidationStrings))]
        /// debe incluir: using Resources;
        /// </summary>
        public const string Date = "Date";
    }
}
